GtkWidget *reverse_landscape_radio;
guint request_details_tag;
+ GtkPrinter *request_details_printer;
GtkPrintSettings *print_settings;
if (priv->request_details_tag)
{
- g_source_remove (priv->request_details_tag);
+ g_signal_handler_disconnect (priv->request_details_printer,
+ priv->request_details_tag);
+ g_object_unref (priv->request_details_printer);
+ priv->request_details_printer = NULL;
priv->request_details_tag = 0;
}
{
GtkPageSetupUnixDialogPrivate *priv = dialog->priv;
+ g_signal_handler_disconnect (priv->request_details_printer,
+ priv->request_details_tag);
+ g_object_unref (priv->request_details_printer);
priv->request_details_tag = 0;
+ priv->request_details_printer = NULL;
if (success)
fill_paper_sizes_from_printer (dialog, printer);
if (priv->request_details_tag)
{
- g_source_remove (priv->request_details_tag);
+ g_signal_handler_disconnect (priv->request_details_printer,
+ priv->request_details_tag);
+ g_object_unref (priv->request_details_printer);
+ priv->request_details_printer = NULL;
priv->request_details_tag = 0;
}
fill_paper_sizes_from_printer (dialog, printer);
else
{
+ priv->request_details_printer = g_object_ref (printer);
priv->request_details_tag =
g_signal_connect (printer, "details-acquired",
G_CALLBACK (printer_changed_finished_callback), dialog);
gulong printer_inserted_tag;
gulong printer_removed_tag;
guint request_details_tag;
+ GtkPrinter *request_details_printer;
guint non_user_change : 1;
} CustomPaperDialog;
gboolean success,
CustomPaperDialog *data)
{
+ g_signal_handler_disconnect (data->request_details_printer,
+ data->request_details_tag);
+ g_object_unref (data->request_details_printer);
data->request_details_tag = 0;
+ data->request_details_printer = NULL;
if (success)
set_margins_from_printer (data, printer);
if (data->request_details_tag)
{
- g_source_remove (data->request_details_tag);
+ g_signal_handler_disconnect (data->request_details_printer,
+ data->request_details_tag);
+ g_object_unref (data->request_details_printer);
+ data->request_details_printer = NULL;
data->request_details_tag = 0;
}
}
else
{
+ data->request_details_printer = g_object_ref (printer);
data->request_details_tag =
g_signal_connect (printer, "details-acquired",
G_CALLBACK (get_margins_finished_callback), data);
if (data->request_details_tag)
{
- g_source_remove (data->request_details_tag);
+ g_signal_handler_disconnect (data->request_details_printer,
+ data->request_details_tag);
+ g_object_unref (data->request_details_printer);
+ data->request_details_printer = NULL;
data->request_details_tag = 0;
}